/***********************************************************************************
 * 文件名： uid_lock.c
 * 作者： 刘言
 * 版本： 1
 * 说明：
 * 		利用UID（唯一标识符）对软件进行加密，防止被复制运行。
 * 		软件启动前在存储器中写入一个32bits的初始KEY，通常在产品出厂时随软件一起烧录。启动时
 * 	执行 UidLock_Init 后此初始KEY会被 匹配KEY 替代。匹配KEY由UID计算得来。这样就形成了存储
 * 	器中的匹配KEY与UID的捆绑。循环调用 ULock_Verify 来验证这个捆绑关系，一旦验证失败就会系统
 * 	崩溃。
 * 修改记录：
 * 	2021/11/16: 初版。 刘言。
***********************************************************************************/
#include "uid_lock.h"
#include "uid_lock_config.h"
#include "polsys.h"

void UidLock_Init()
{
	if(_UidLock_ReadKey() == UID_LOCK_INIT_KEY)
	{
		u32 mcode = _UidLock_ColMatchCode();
		_UidLock_WriteKey(mcode);
	}
}

int main();
void UidLock_Verify()	//如果匹配码不正确，跳转到main（或者改为其他函数）。在程序任意位置调用（想要检查UID匹配的位置）
{
	if(_UidLock_ReadKey() != _UidLock_ColMatchCode())
	{
		main();
	}
}



